Skip to content

The Book of Shaders | 开始

《The Book of Shaders》 by Patricio Gonzalez Vivo & Jen Lowe 随书笔记

Hello World

js
#ifdef GL_ES
precision mediump float;
#endif

void main(){
  gl_FragColor=vec4(0.2, 1.0, 0.0, 0.342);
}
  1. #ifdef #endif 预处理的宏命令。

uniform

js
#ifdef GL_ES
precision mediump float;
#endif

uniform vec2 u_resolution; // 画布尺寸(宽,高)
uniform vec2 u_mouse;      // 鼠标位置(在屏幕上哪个像素)
uniform float u_time;     // 时间(加载后的秒数)

void main() {
	gl_FragColor = vec4(0.0,0.0,abs(sin(u_time)),1.0);
}
  1. gpu进程之间无法传值,但可以通过cpu进行输入,uniform是它们的桥梁
  2. 业内大多以 u_ 开头定义uniform变量,也有一些会有自己的开头定义

更新于:

夜茶 2020 ~ 2026